<?php
/**
 * User: lie
 * Date: 2020/12/7 14:05
 * Title: 解决用substr()函数对中文字符串截取时出现乱码的问题
 * Description:
 * Error:
 */
$str = "吉林省明日科技有限公司是一家以计算机技术为核心的高科技型企业";
echo $str;
?>
<form action="" method="post">
    从第 <input type="text" name="start" size="1">字开始截取，截取 <input type="text" name="len" size="1">个字。
    <input type="submit" name="sub" value="截取">
</form>

<?php
    if (!empty(['sub'])) {
        $start = intval($_POST['start']);
        $len = intval($_POST['len']);
        if (empty($start) || empty($len)) {
            return false;
        }
        function msubstr($str, $start, $len) {
            $strlen = $start + $len;
            for ($i = 0; $i < $strlen; $i++) {
                if ((substr($str, $i, 1)) > 0xa0) {
                    $tmpstr .= substr($str, $i, 3);
                    $i++;
                } else {
                    $tmpstr .= substr($str, $i, 1);
                }
            }
            return $tmpstr;
        }

        echo msubstr($str, $start, $len);
    }
?>